home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ARASAN_S.ZIP / RMOVE.CPP < prev    next >
C/C++ Source or Header  |  1994-08-01  |  1KB  |  38 lines

  1. // Copyright 1994 by Jon Dart.  All Rights Reserved.
  2.  
  3. #include "rmove.h"
  4. #ifdef __BORLANDC__
  5. #include <memory.h>
  6. #endif
  7.  
  8. ReversibleMove::ReversibleMove()
  9. : ExtendedMove()
  10. {
  11.   // These fields have no meaning for the default constructor, but
  12.   // initialize them to something legal anyway.
  13.   old_castlestatus[White] = old_castlestatus[Black] = Board::CanCastleEitherSide;
  14.   old_enpassantsq[White] = old_enpassantsq[Black] = 0;
  15. }
  16.  
  17. ReversibleMove::ReversibleMove( const Board &ABoard, const Square start,
  18.   const Square dest, const Piece::PieceType p )
  19. : ExtendedMove( ABoard, start, dest, p )
  20. {
  21.    old_hashcode = ABoard.HashCode();
  22.    old_castlestatus[White] = ABoard.CastleStatus(White);
  23.    old_castlestatus[Black] = ABoard.CastleStatus(Black);
  24.    old_enpassantsq[White] = ABoard.EnPassantSq(White);
  25.    old_enpassantsq[Black] = ABoard.EnPassantSq(Black);
  26. }
  27.  
  28. ReversibleMove::ReversibleMove( const Board &ABoard,
  29.  const ExtendedMove &emove) :
  30. ExtendedMove( ABoard, emove )
  31. {
  32.    old_hashcode = ABoard.HashCode();
  33.    old_castlestatus[White] = ABoard.CastleStatus(White);
  34.    old_castlestatus[Black] = ABoard.CastleStatus(Black);
  35.    old_enpassantsq[White] = ABoard.EnPassantSq(White);
  36.    old_enpassantsq[Black] = ABoard.EnPassantSq(Black);
  37. }
  38.